<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    表达式：产生一个值，可以放在需要值的地方。
    语句：执行一个动作，完成某个操作。
    匿名函数：没有名字的函数，通过函数表达式的方式使用。
    函数表达式：一种定义函数的方式，它将函数作为表达式而不是语句来创建。
    使用方式：作为变量赋值、立即执行函数。
    JavaScript 解析器遇到 function 关键字时：
    如果出现在语句开始位置 → 期望是函数声明（需要名称）
    如果出现在表达式位置 → 接受函数表达式（可匿名）
    使用匿名函数和具名函数的不同是，匿名函数必须在定义后调用，常规具名函数的调用可以写在任何位置，因为具名函数（函数声明）有函数提升的特性。
</body>
<script>
    let fn = function (x, y) {
        console.log(x + y)
    }
    fn(1, 2);
    (function () { })();  // 立即执行函数前后要注意加分号，否则可能会错误地解析代码
    (function () { }());
    // 第一种写法
    (function (x, y) {
        console.log(x + y)
    })(1, 2);
    // 第二种写法
    (function (x, y) {
        console.log(x + y)
    }(1, 3))
</script>

</html>